#pragma once

#include <memory>
class CServerNode;

class IIOMgr 
{
public:
    virtual void newSocketAccepted(std::shared_ptr<CServerNode> node) = 0;
    virtual void notifySocketClosed(std::shared_ptr<CServerNode> node) = 0;
    virtual void notifySocketError(std::shared_ptr<CServerNode> node, int error_code) = 0;
    virtual void notifyDataRecvedEvent(std::shared_ptr<CServerNode> node) = 0;
    virtual void notifyDataSentEvent(std::shared_ptr<CServerNode> node) = 0;
};